/**
 @文件名： lang/index.ts
 @来源：YongPing.Wang|2023/11/12 11:12
 @描述：国际化
 **/
import { createI18n } from 'vue-i18n'
import { ELangType } from '@/lang/types.ts'
import baseParam from '@/config/parameter/baseParam.ts'
// element
import zhCnElement from 'element-plus/dist/locale/zh-cn.mjs'
import enElement from 'element-plus/dist/locale/en.mjs'
// 自定义的语言配置
import baseZhCn from '@/lang/baseModel/zh-cn.json'
import baseEn from '@/lang/baseModel/en.json'
import menuZhCn from '@/lang/menuModel/zh-cn.json'
import menuEn from '@/lang/menuModel/en.json'
// 项目
import pageZhCn from '@/lang/pageModel/zh-cn.json'
import pageEn from '@/lang/pageModel/en.json'
// 时间
import 'dayjs/locale/zh-cn.js'
import 'dayjs/locale/en.js'

// 定义语言国际化内容 zhCn en
const messages = {
  [ELangType.ZHCN]: {
    ...zhCnElement,
    [baseParam.systemDefaultPrefix]: {
      baseModel: {
        ...baseZhCn,
      },
      menuModel: {
        ...menuZhCn,
      },
      pageModel: {
        ...pageZhCn,
      },
    },
  },
  [ELangType.EN]: {
    ...enElement,
    [baseParam.systemDefaultPrefix]: {
      baseModel: {
        ...baseEn,
      },
      menuModel: {
        ...menuEn,
      },
      pageModel: {
        ...pageEn,
      },
    },
  },
}
// 返回
export const i18n = createI18n({
  globalInjection: true, // 全局注入
  legacy: false,
  fallbackLocale: 'zh-cn', // 没有默认到
  locale: 'zh-cn', // 当前语言
  messages,
})
